An Executable Formal Semantics of C with Applications: Technical Report
نویسندگان
چکیده
This paper describes an executable formal semantics of C. Being executable, the semantics has been thoroughly tested against the GCC torture test suite and successfully passes 770 of 776 test programs. It is the most complete and thoroughly tested formal definition of C to date. The semantics yields an interpreter, debugger, state space search tool, and model checker “for free”. The semantics is shown capable of automatically finding program errors, both statically and at runtime. It is also used to enumerate nondeterministic behavior.
منابع مشابه
A Formal Semantics of C with Applications
This paper describes an executable formal semantics of C expressed using a formalism based on term rewriting. Being executable, the semantics has been thoroughly tested against the GCC torture test suite and successfully passes over 96% of 715 test programs. It is the most complete and thoroughly tested formal definition of C to date. The semantics yields an interpreter, debugger, and state spa...
متن کاملFormal Semantics of Heterogeneous CUDA-C: A Modular Approach with Applications
We extend an off-the-shelf, executable formal semantics of C (Ellison and Ros,u’s K Framework semantics) with the core features of CUDA-C. The hybrid CPU/GPU computation model of CUDA-C presents challenges not just for programmers, but also for practitioners of formal methods. Our formal semantics helps expose and clarify these issues. We demonstrate the usefulness of our semantics by generatin...
متن کاملTinkerType: a language for playing with formal systems
TinkerType is a pragmatic framework for compact and modular description of formal systems (type systems, operational semantics, logics, etc.). A family of related systems is broken down into a set of clauses — individual inference rules — and a set of features controlling the inclusion of clauses in particular systems. Simple static checks are used to help maintain consistency of the generated ...
متن کاملOn the Formal Semantics of the Cognitive Middleware AWDRAT
The purpose of this work is two fold: on one hand we want to formalize the behavior of critical components of the self generating and adapting cognitive middleware AWDRAT such that the formalism not only helps to understand the semantics and technical details of the middleware but also opens an opportunity to extend the middleware to support other complex application domains of cybersecurity; o...
متن کاملExecutable English
This paper introduces a declarative formal language, called Executable English, for specifying computations. The language is designed to be readable, without training, by any English speaker with an engineering or science background. Hence, programs can be read by members of an engineering team who are not themselves programmers, but whose technical knowledge is being used to create the program...
متن کامل